#makefile to compile tinyxml

MDN_SDK=.

SRC_DIR=$(MDN_SDK)/src
LIB_DIR=./lib
OBJ_DIR=./obj
INCLUDE_DIR=$(MDN_SDK)/include

INC=-I$(INCLUDE_DIR)
SRC_OPT=-D__linux__ $(MACRO_DEFINE)

LIB_EXT=a
OBJ_EXT=o

COMP_NAME=g++
LIB_NAME=ar
COMP_OPT=-c -g -Wall -fno-strict-aliasing -O -O2 -o $@ -fprofile-arcs -ftest-coverage
LIB_OPT=-cr

DEL=rm -f

OBJS=$(OBJ_DIR)/serverconfig.$(OBJ_EXT)\
	$(OBJ_DIR)/tinystr.$(OBJ_EXT)\
	$(OBJ_DIR)/tinyxml.$(OBJ_EXT)\
	$(OBJ_DIR)/tinyxmlparser.$(OBJ_EXT)\
	$(OBJ_DIR)/tinyxmlerror.$(OBJ_EXT)

all:$(LIB_DIR)/libtinyxml.$(LIB_EXT)
	
$(LIB_DIR)/libtinyxml.$(LIB_EXT):$(OBJS)
	$(LIB_NAME) $(LIB_OPT) $@ $^

$(OBJ_DIR)/serverconfig.$(OBJ_EXT):$(SRC_DIR)/serverconfig.cpp
	$(COMP_NAME) $(COMP_OPT) $(INC) $(SRC_OPT) $<

$(OBJ_DIR)/tinystr.$(OBJ_EXT):$(SRC_DIR)/tinystr.cpp
	$(COMP_NAME) $(COMP_OPT) $(INC) $(SRC_OPT) $<

$(OBJ_DIR)/tinyxml.$(OBJ_EXT):$(SRC_DIR)/tinyxml.cpp
	$(COMP_NAME) $(COMP_OPT) $(INC) $(SRC_OPT) $<

$(OBJ_DIR)/tinyxmlparser.$(OBJ_EXT):$(SRC_DIR)/tinyxmlparser.cpp
	$(COMP_NAME) $(COMP_OPT) $(INC) $(SRC_OPT) $<

$(OBJ_DIR)/tinyxmlerror.$(OBJ_EXT):$(SRC_DIR)/tinyxmlerror.cpp
	$(COMP_NAME) $(COMP_OPT) $(INC) $(SRC_OPT) $<

clean:
	$(DEL) $(OBJ_DIR)/*.*
	$(DEL) $(LIB_DIR)/*.*
